A storage device for storing data may include, for example, a magnetic disk, a semiconductor memory, and the like. Since physical characteristics are different for each type of storage device, a management method corresponding to the distinctive physical characteristics is required.
Conventionally, magnetic disks are widely used as storage devices. A read/write time of the magnetic disk takes an average of several milliseconds per kilobyte. Additionally, since an arrival time of an arm of the magnetic disk is different, depending on a physical location that stores data, the read/write time of the magnetic disk varies.
Recently, a non-volatile memory that takes a relatively short read/write time, consumes a small amount of power, and occupies a small amount of space, compared with a magnetic disk, is rapidly replacing the magnetic disk. This is because a capacity of the non-volatile memory is increasing.
The non-volatile memory may perform electronic reading, writing, and erasing. The non-volatile memory is a semiconductor memory device that is able to maintain stored data even when power is interrupted. A process of storing data in a non-volatile memory device is additionally referred to as programming, as well as writing.
A typical example of the non-volatile memory includes a flash memory. The flash memory has advantages of a small size, a low power consumption, and a high read rate, when compared with a conventional Hard Disk Drive (HDD). Recently, a Solid State Disk (SSD) using a high-capacity flash memory was proposed to replace an HDD.
The flash memory may typically include, for example, a NAND-type flash memory, a NOR-type flash memory, and the like. A NAND scheme and a NOR scheme may be distinguished based on a configuration and an operating scheme of a cell array.
When a single flash memory is referred to as a flash chip, a multichip using a plurality of flash chips for a large capacity may be configured. In this instance, the plurality of flash chips shares a single data bus. A flash memory has a relatively longer write and erase times in comparison to a transmit time. Accordingly, pipelining is used for the multichip. The pipelining is a technique to perform a write command on a single flash chip, and to simultaneously perform transmission and writing on other flash chips, and has an effect of concealing the write time with respect to the single chip.
A page that is a basic reading and writing unit of a current flash memory, having a size much greater than a sector which is a unit for a basic command received from a host system. Accordingly, when the host system transmits a small unit of write command, a controller generates a single page using a requested sector by reading an original page from a corresponding flash chip through a buffer cache or a flash translation layer. An additional task to rewrite the generated single page in the flash chip is required. However, if the flash chip storing the original page is performing a writing operation, the controller is required to delay reading of the original page until the writing operation is terminated.